Management of mobile objects

ABSTRACT

An embodiment of the invention may include a method, computer program product and computer system for managing mobile objects. The embodiment may identify, by an event agent (EA), an event occurring in a geographic space in which a plurality of mobile objects move. The embodiment may determine the event is an expected event based on predicting time-series changes of the event handled by the EA. The embodiment may manage the one mobile object based on the expected event.

BACKGROUND

The present invention relates to management of the movement of mobileobjects.

Driving support and automobile systems receive information bycommunicating with a plurality of automobiles, acquire event informationconcerning accidents or obstructions on the road and map thisinformation onto a map along with the position of an automobile. Suchsystems reference automobile position information, automobilecharacteristic information, driver characteristic information, and thelike, and transmits suitable event information to each automobile.

BRIEF SUMMARY

An embodiment of the invention may include a method, computer programproduct and computer system for managing mobile objects. The embodimentmay identify, by an event agent (EA), an event occurring in a geographicspace in which a plurality of mobile objects move. The embodiment maydetermine the event is an expected event based on predicting time-serieschanges of the event handled by the EA. The embodiment may manage theone mobile object based on the expected event.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a system 100 according to an embodiment of the presentinvention and a map area corresponding to a geographic space managed bythe system 100.

FIG. 2 shows a subsystem 200 according to the embodiment of the presentinvention and a map area corresponding to a region A managed by thesubsystem 200.

FIG. 3 shows a first exemplary configuration of the system 100 accordingto the present embodiment.

FIG. 4 shows management of events by the event server 210 and the mobileobject server 220 according to one embodiment.

FIG. 5 shows management of mobile object by the mobile object server 220and object server 230 according to one embodiment.

FIG. 6 shows an operational flow of an exemplary configuration of thesystem 100 according to the present embodiment.

FIG. 7 shows an operational flow of S620 according to the presentembodiment.

FIG. 8 shows an operational flow of S650 according to the presentembodiment.

FIG. 9 shows an illustrative example of an event list.

FIG. 10 shows an illustrative example of a candidate event list.

FIG. 11 shows an illustrative example of a notification event list.

FIG. 12 shows a mobile object 10 and events according to one embodiment.

FIG. 13 shows an operational flow of S660 according to the presentembodiment.

FIG. 14 shows a second exemplary configuration of the system 100according to the present embodiment.

FIG. 15 shows a general configuration of the event agents and thepredictive environment agents executed by the event server 210 accordingto the present embodiment.

FIG. 16 shows the third exemplary configuration of the system 100according to the present embodiment.

FIG. 17 shows a first exemplary operational flow of the system 100having the third exemplary configuration according to the presentembodiment.

FIG. 18 shows a second exemplary operational flow of the system 100having the third exemplary configuration according to the presentembodiment.

FIG. 19 shows a schematic configuration of a route search performed bythe system 100 having the third exemplary configuration according to thepresent embodiment.

FIG. 20 shows a third exemplary operational flow of the system 100having the third exemplary configuration according to the presentembodiment.

FIG. 21 shows a computer according to an embodiment of the invention.

DETAILED DESCRIPTION

Embodiments of the present invention will now be described in detailwith reference to the accompanying Figures.

Hereinafter, example embodiments of the present invention will bedescribed. The example embodiments shall not limit the inventionaccording to the claims, and the combinations of the features describedin the embodiments are not necessarily essential to the invention.

FIG. 1 shows a system 100 and a map area corresponding to a geographicspace managed by the system 100, according to an embodiment of thepresent invention. The system 100 manages a geographic space thatincludes routes on which a mobile object 10 moves. The system 100 isoperable to divide the geographic space into a plurality of regions andmanage these regions. A mobile object 10 may move on routes includingland routes, sea routes, and/or air routes, for example. The geographicspace may be land, sea, or air space that includes the routes on whichthe mobile object travels. The mobile objects 10 may be manned/unmannedautomobiles, motorbikes, bicycles, humans having a digital device,airplanes, vessels, drones, or the like.

FIG. 1 shows an automobile as an example of the mobile object 10, whichmoves along roads as examples of land routes. The system 100 includes aplurality of subsystems 200 that respectively manage the plurality ofregions. FIG. 1 shows an example in which the map area is divided intosix regions from region A to region F, and six subsystems 200respectively manage these six regions.

System 100 comprises a plurality of event servers 210, a plurality ofmobile object servers 220, a plurality of object servers 230, and aplurality of passenger servers 240. According to the embodiment of FIG.1, each of the subsystems 200 may include at least one of the pluralityof event servers 210 and one of the plurality of mobile object servers220.

The event server 210 manages events occurring in each region of thegeographic space. In one embodiment, the event server 210 of subsystem200 assigned to region A may manage events in region A. The plurality ofmobile object servers 220 respectively assigned to a plurality ofregions in a geographic space manage the mobile objects 10 in each ofthe plurality of regions. In one embodiment, the mobile object server220 assigned to region A may manages mobile objects 10 located in regionA. The object server 230 manages information of the mobile objects 10regardless of the location of the mobile objects 10. The passengerserver 240 manages information of at least one passenger riding on themobile objects 10.

Each of the subsystems 200 may be implemented on one or more servers. Inone embodiment, each event server 210 and mobile object server 220 maybe implemented on one server. In one embodiment, a set of an eventserver 210 and a mobile object server 220 in a subsystem 200 may beimplemented by one server. Portions of the system 100 other than thesubsystems 200 may also be implemented on one or more servers. In oneembodiment, each object server 230 and passenger server 240 may beimplemented on one server. In another embodiment, a set of objectservers 230 and a set of passenger servers 240 may be each implementedby one server. In yet another embodiment, all of the object servers 230and the passenger servers 240 may be implemented on one server. Theseservers may exist at any point on a network including the Internet, asubscriber network, a cellular network, or a desired combination ofnetworks. The servers may be computers or other types of dataprocessors, and may be dedicated servers, or may be shared servers thatperform other operations.

The system 100 acquires the positions of a mobile object 10 from themobile object 10, and the mobile object server 220 managing the regionthat includes the acquired position of the mobile object 10 may managethe movement of this mobile object 10. The system 100 acquiresinformation of events that have occurred to the mobile object 10 and/oron the road outside, and the event server 210 managing the regionincluding the position where such an event has occurred may manage thestate of the event.

This event may include information about accidents, obstructions,closure, limitation, status, or construction on the road, or informationabout the weather, temperature, buildings, shops, or parking lots nearthe road. In response to a setting or a request from the mobile object10, the subsystem 200 may provide notification about the eventinformation to the mobile object 10 that made the request. For example,if the mobile object 10 is moving on a route in a geographical areacorresponding to region A, then the mobile object sever 220 managingregion A provides this mobile object 10 with the notification about theevent relating to the route.

Since the map area is divided into a plurality of regions, despite themobile object 10 simply moving on a route, the region corresponding tothe position of the mobile object 10 might change. FIG. 1 shows anexample in which the mobile object 10 is driving on a road such that theposition of the mobile object 10 moves from region A to region B on theregions. In this case, according to the movement of the mobile object10, the system 100 may transfer the information concerning the mobileobject 10 from the mobile object server 220 managing region A to themobile object server 220 managing region B, and may also transfer themanagement of the mobile object 10 to the mobile object server 220managing region B.

FIG. 2 shows a subsystem 200 and a map area corresponding to a region Amanaged by the subsystem 200, according to an embodiment of the presentinvention. The event server 210 manages at least one event agent, andexecutes each event agent to manage events on routes in a regionassigned to the event server 210. An “agent” may be a software entityhaving specific data, and may operable to receive a message (e.g.command), and return a result of the message. Each region of theplurality of regions of geographic space includes at least a portion ofone area of the plurality of areas. In this embodiment, the regionassigned to the event server 210 is the same as the region assigned tothe mobile object server 220. However, in other embodiments, theseregions may be different.

In the embodiment of FIG. 2, the region A, which is the region assignedto the event server 210, is divided into 16 areas and 16 areas areassigned to each of the event agents EA1-EA16. The event server 210executes each of the event agents EA1-EA16 to manage events occurring onroutes of each area of region A. For example, the event agent EA2 maymanage a “closure” event on an area corresponding to EA2 on the map, andthe event agent EA4 may manage a “speed limit” event on an areacorresponding to EA4 as shown in FIG. 2.

The plurality of mobile object servers 220 may include at least onemobile object server 220 including one or more mobile object agents,each of which is assigned to each of the mobile objects 10. In theembodiment of FIG. 2, the mobile object server 220 includes three mobileobject agents MOAs 1-3 assigned to three mobile objects 10 in theassigned region A. The mobile object server 220 executes each of themobile object agents MOA1-MOA3 to manage the mobile objects 10 travelingon the region A.

FIG. 3 shows an exemplary configuration of the system 100, according toan embodiment of the present invention. The system 100 may be operableto communicate with each of a plurality of mobile objects 10 to send andreceive the information used to manage the mobile objects 10. The system100 may be operable to acquire map data and/or information exchangedwith the mobile objects 10, through the Internet, a subscriber network,a cellular network, or any desired combination of networks. The system100 includes an acquiring section 110, a dividing section 130, a regionmanager 140, a receiving section 150, a transmitting section 152, agateway apparatus 160, a plurality of subsystems 200, a plurality ofobject servers 230, and a plurality of passenger servers 240.

The acquiring section 110 may be operable to acquire map datacorresponding to the geographical areas where a mobile object 10 ispositioned, from an external database 30, for example. In response tothe map being updated, the acquiring section 110 may acquire some or allof the updated map data. The acquiring section 110 may be operable toacquire the map data from the Internet, a subscriber network, a cellularnetwork, or any desired combination of networks. The system 100 may beoperable to store the map data in advance.

The acquiring section 110 may further acquire an event that has occurredwithin the geographic space to be managed by the system 100. In thiscase, the acquiring section 110 may acquire, accident information,traffic information, weather information, time information, etc.

The dividing section 130 may be operable to communicate with theacquiring section 110 and divide the map area into a plurality ofregions. In this embodiment, the dividing section 130 generates twogroups of regions by dividing an original map area into a plurality ofregions.

The region manager 140 may be operable to store information concerningthe plurality of regions including the regions resulting from thedivision. The region manager 140 may be operable to specify thesubsystem 200 managing the region that includes the position of themobile object 10, in response to receiving the position of the mobileobject 10. The region manager 140 may be implemented on one or moreservers. The region manager 140 includes an storage section 142 and adetermining section 146.

The storage section 142 may be operable to communicate with the dividingsection 130 and store information concerning the plurality of firstregions and the plurality of second regions resulting from the divisionby the dividing section 130. The storage section 142 may store settingvalues or the like of the system 100.

The storage section 142 may store intermediate data, calculationresults, threshold values, parameters, and the like that are generatedby or used in the operations of the system 100. In response to a requestfrom any component within the system 100, the storage section 142 maysupply the data stored therein to the component making the request. Thestorage section 142 may be a computer readable storage medium such as anelectric storage device, a magnetic storage device, an optical storagedevice, an electromagnetic storage device, or a semiconductor storagedevice.

The determining section 146 may be operable to communicate with thestorage section 142, and determine one region from the plurality ofregions (e.g., regions A-F of FIG. 1) in which each of the mobileobjects 10 is located based on the position information of the mobileobject 10 and geographic information of the plurality of regions. Thedetermining section 146 may identify a route or position in the map areamanaged by the system 100 that corresponds to the position informationof the mobile object 10.

The determining section 146 may store the position information of thismobile object 10 and/or information of the determined region in thestorage section 142, in association with this mobile object 10. Thedetermining section 146 may store a history of the position informationof this mobile object 10 and/or a history of the determined mobileobject server 220 in the storage section 142. The determining section146 may be a circuit, a shared or dedicated computer readable mediumstoring computer readable program instructions executable by a shared ordedicated processor, etc.

The receiving section 150 may be operable to receive informationtransmitted from each of a plurality of mobile objects 10. Each mobileobject 10 may transmit information at designated time intervals, and thereceiving section 150 may sequentially receive this transmittedinformation. In this embodiment, the receiving section 150 may receivecar probe data from each mobile object 10 as the information. The carprobe data may include information detected by the mobile object 10,such as position information of the mobile object 10.

In one embodiment, the position information may include longitude andlatitude (and optionally altitude information) of the mobile object 10in an absolute coordinate system. In another embodiment, the mobileobject 10 may determine its location in the absolute coordinate systemby using GPS, and the determining section 146 receiving the positioninformation may determine a route on which the mobile object 10 existsand a specific location of the route at which the mobile object 10exists based on the position information. Alternatively, the mobileobject 10 may include such detailed position information in the carprobe data.

The receiving section 150 may communicate with the plurality of mobileobjects 10 and receive the car probe data of each mobile object 10, viathe Internet 40. The receiving section 150 may receive the car probedata of the plurality of mobile objects 10 through wirelesscommunication, a subscriber network, a cellular network, or any desiredcombination of networks.

The transmitting section 152 may be operable to transmit eventinformation to each of the mobile objects 10 according to settings, forexample. The transmitting section 152 may transmit informationconcerning the route on which the mobile object 10 is expected totravel. The transmitting section 152 may communicate with the mobileobjects 10 and transmit each type of information to the mobile objects10 via the Internet 40. The transmitting section 152 may transmit eachtype of information to the mobile objects 10 through wirelesscommunication, a subscriber network, a cellular network, or any desiredcombination of networks.

The gateway apparatus 160 may be operable to transfer communicationbetween the plurality of subsystems 200 and the plurality of mobileobjects 10. The gateway apparatus 160 may communicate with the receivingsection 150 and receive the information transmitted by each mobileobject 10.

The gateway apparatus 160 may communicate with the region manager 140and demand the transfer destination for each piece of informationreceived from the mobile objects 10, of the region manager 140. Inresponse to this request, the gateway apparatus 160 may receive from theregion manager 140 the information of the subsystem 200 managing theregion on which the mobile object 10 exists. The gateway apparatus 160may transfer the information received from the mobile object 10 to thesubsystem 200 that is to manage the mobile object 10. In other words,the gateway apparatus 160 may transfer the information received fromeach mobile object 10 to the subsystem 200 determined by the regionmanager 140.

The gateway apparatus 160 may communicate with each of the subsystems200, and receive the information transmitted by each subsystem 200. Thegateway apparatus 160 may communicate with the transmitting section 152and supply the transmitting section 152 with the information receivedfrom each subsystem 200, such that this information is transferred tothe mobile objects 10 designated for each subsystem 200.

The gateway apparatus 160 may include a plurality of gateway devices,and may quickly perform transfer between the plurality of subsystems 200and the plurality of mobile objects 10. In this case, the receivingsection 150 may function as a load balancer that supplies theinformation from the mobile objects 10, such that the load is spreadamong the plurality of gateways. The load balancer may sequentiallysupply information from the mobile objects 10 to the gateways havinglighter loads. The gateway apparatus 160 may be a network that providesa connection between a plurality of networks using the same or differenttypes of protocols.

A plurality of subsystems 200 may be operable to communicate with theregion manager 140 and the gateway apparatus 160 and to respectivelymanage a plurality of regions in a geographic space. Each subsystem 200is operable to manage mobile objects 10 that travel routes in itsmanaging region and to manage events on its managing region.

As described, each subsystem 200 may include the event server 210 andthe mobile object server 220. The event server 210 manages eventsoccurring on its managing region with the plurality of the event agents.In one embodiment, the event server 210 may perform, through the eventagent, (i) registration, update and/or deletion of events, (ii)registration, update and/or deletion of candidate events, and (iii)provision of event information.

The mobile object server 220 manages the plurality of the mobile objects10 traveling on its managing region with the plurality of the mobileobject agents. In one embodiment, the mobile object server 220 mayperform, through the mobile object agent, (i) processing of the carprobe data, (ii) update of information of the mobile object, and (iii)provision of information to the mobile object. For example, the mobileobject server 220 may execute the mobile object agent to collectinformation of events from at least one event server 210, and providethe mobile object 10 with information that assists the mobile object 10with traveling in the geographic space.

A plurality of object servers 230 including at least one object server230 may communicate with the gate way 160 and include an object agent(OA) containing information of the mobile object 10. An object agent maycorrespond to each mobile object 10 and contain information thereof. Inone embodiment, the object agent may contain (i) information, by region,of which subsystem currently manages a mobile object agent of the mobileobject 10, (ii) an identification (ID) of the mobile object 10, (iii) anID of a passenger of the mobile object 10, and (iv) a characteristic ofthe mobile object 10 (e.g., model/version information, width, length,and/or height of the mobile object 10).

The object server 230 may perform, through the object agent, (i)provision and/or update of information of the mobile object 10, (ii)registration, update, and/or deletion of the ID of passenger riding onthe mobile object 10, (iii) provision and/or update of the informationof the region of the mobile object 10, and (iv) provision of informationneeded for generation of a new mobile object agent by the mobile objectserver 220.

At least one passenger server 240 of a plurality of passenger serversmay communicate with the gateway 160, and include a passenger agent thatcontains information of at least one passenger. A passenger agent maycorrespond to each passenger or candidate passenger of mobile objects10, and contain information thereof. In one embodiment, the object agentmay contain an ID of a passenger and a characteristic of the passenger(e.g., information of age, gender, type, and the like of license of thepassenger). The passenger server 240 may perform, through the passengeragent, provision and/or update of information of the passengers.

As described above, the system 100 of the present embodiment may managethe mobile objects by utilizing the mobile object agents in each mobileobject server 220, and manage the events by utilizing the event agent ineach event server 210. According to the system 100 of the embodiment,the system 100 can separately manage information relating to the mobileobjects 10 and events on the geographic map with a plurality of kinds ofservers. Furthermore, the plurality of mobile object servers 220 cansmoothly transfer the management of the mobile objects 10 travelingacross the regions via the mobile object agents, thereby improving theefficiency of the whole system 100. In addition, according to the system100 of the embodiment, each event server 210 divides event management inone region among the plurality of event agents and provides the mobileobject agent with event information, thereby improving the efficiency ofevent management in the region (e.g., improving response time of eventsearch) and thus event notification to the mobile objects 10. Inaddition, the system 100 can provide the mobile object agent withinformation of mobile object 10 by the object agent of the object server230. The system 100 can also provide the mobile object agent withinformation of passengers of the mobile objects 10 by the passengeragent of the passenger server 240.

FIG. 4 shows management of events by the event server 210 and the mobileobject server 220, according to an embodiment of the present invention.In this embodiment, a mobile object 10 is traveling on a target route onregion A and transmitting a car probe data including the positioninformation to the event server 210 managing region A with the car probedata via a gateway apparatus, such as the gateway apparatus 160. Theevent server 210 manages event information through each event agentbased on the car probe data from the mobile objects on region A. Forexample, each event agent may manage an event list (containinginformation of an event and an influence event for routes on the areamanaged by the event agent) and a candidate event list (containinginformation of candidates of an event for routes on the area managed bythe event agent).

In the embodiment of FIG. 4, the event agent EA2 manages events of anarea (indicated as “DA2” on the region A of FIG. 4) by the event list ofthe event agent EA2 and the candidate event list of the event agent EA2based on car probe data from the mobile object 10 on the area DA2. Forexample, the event agent EA2 assigned to the area DA2 is executable togenerate an event based on the information from the mobile object 10.

In one embodiment, each mobile object server 220 is operable to receiveinformation from the mobile object 10 in the region A assigned to themobile object server 220. The mobile object server 220 determines thetarget route where the mobile object 10 is located. The mobile objectserver 220 sends the information to one event server 210 assigned to aregion A where the mobile object 10 is located, and thereby requests theevent agent EA2 assigned to the area DA2 where the target route islocated to send an event list containing information of an event on thetarget route and the influence event of the target route.

The mobile object server 220 executes the mobile object agent MOA1 forthe mobile object 10 to provide the mobile object 10 with informationthat assists the mobile object 10 with traveling in the area DA2 basedon the information of the event on the other route and the influenceevent of the target route. In the embodiment of FIG. 4, the mobileobject agent MOA1 receives, from the event agent EA2, the eventinformation of the route on which the mobile object 10 exists, andprovides the mobile object 10 with the event information (e.g.,information of closure).

FIG. 5 shows management of a mobile object 10 by the mobile objectservers 220 and object server 230, according to an embodiment of thepresent invention. The mobile object server 220-1 may transfer themobile object agent to the mobile object server 220-2 assigned to aneighboring region in response to the mobile object 10 moving to theneighboring region. In this embodiment, in response to a mobile object10 traveling from region A to region B, the mobile object server 220-1managing region A deletes the mobile object agent MOA for the mobileobject 10, and a mobile object server 220-2 managing region B generatesa mobile object agent MOA for the mobile object 10.

In this embodiment, the object agent 230 may store information thatincludes a mobile object server identifier MOS-ID that identifies one ofthe plurality of mobile object servers 220 executing the mobile objectagent corresponding to the object agent 10. Just after the mobile object10 arrives at region B, the mobile object server 220-2 has not beenexecuting the mobile object agent for the mobile object 10. The mobileobject server 220-2 is operable to receive information from the mobileobject 10 in the region B assigned to the mobile object server 220-2.

Using the information from the mobile object 10, the mobile objectserver 220-2 obtains the mobile object server identifier MOS-ID from theobject server 230 that manages the object agent for the mobile object 10because the mobile object server 220-2 is not executing the mobileobject agent for the mobile object 10. The mobile object server 220-2requests a mobile object server 220-1 identified by the mobile objectserver identifier MOS-ID to transfer the mobile object agent for themobile object 10. Then the mobile object server 220-1 managing region Atransfers the mobile object agent to the mobile object server 220-2assigned to a neighboring region B in response to the request.

FIG. 6 shows an operational flow of a system, according to an embodimentof the present invention. The present embodiment describes an example inwhich the system 100 performs the operations from S610 to S680 shown inFIG. 6 to manage mobile objects, such as mobile object 10, and events ona map area. FIG. 6 shows one example of the operational flow of thesystem 100 shown in FIGS. 1-5, but the system 100 shown in FIGS. 1-5 isnot limited to using this operational flows explained below. Also, theoperational flow in FIG. 6 may be performed by other systems.

First, an acquiring section, such as the acquiring section 110, mayacquire the map data of the geographic space to be managed by the system(S610). The acquiring section may acquire map data of a geographic spacethat includes one or more cities, one or more towns, and the like. Theacquiring section may include map data of a geographic space includingone or more states, countries, continents, etc. A dividing section, suchas the dividing section 130, may divide the map area to generate aplurality of regions.

Next, the system may perform an initialization process for the mobileobject (S620). The system may perform the process of S620 if a user(passenger) initializes a setting of a mobile object and any passengersof the mobile object, before starting to drive the mobile object.

After S620, a gateway apparatus, such as the gateway apparatus 160, ofthe system may acquire a car probe data from the mobile object (S630).Although the system may acquire the car probe data from the plurality ofthe mobile objects, the system acquiring a car probe data from onemobile object (which, may be referred to as “a target mobile object”) isexplained in the below description. The car probe data may includeinformation detected by the target mobile object, such as currentposition information of the target mobile object, a speed and/ordirection of the target mobile object, and event information observed bythe target mobile object (e.g., occurrence of ABS, detection ofobstacles, or the like). In one embodiment, the position information mayinclude an edge ID of an edge on which the target mobile object existsand the distance between the current location of the target mobileobject and the one end of the edge.

Next, the gateway apparatus may determine a region on which the targetmobile object is traveling based on the position information of the carprobe data of the target mobile object (S640). In one embodiment, thegateway apparatus may inquire a region manager, such as the regionmanager 140, about the region on which the mobile object exists. Adetermining section, such as the determining section 146, of the regionmanager may determine the region the target mobile object and providethe gateway apparatus with the information of the region of the targetmobile object. The gateway apparatus may provide an event server, suchas the event server 210, that manages the determined region and a mobileobject server, such as the mobile object server 220, that manages thedetermined region with the car probe data.

Next, the event server that is provided with the car probe data of thetarget mobile object may process events for the mobile objects (S650).The event server may manage event information based on the car probedata for notification of events to the target mobile object.

After S650, the mobile object server that is provided with the car probedata of the target mobile object may manage a mobile object agent forthe target mobile object (S660).

After S660, the system determines whether to end the process for thetarget mobile object. In one embodiment, the gateway apparatus maydetermine whether the car probe date indicates the engine stop of thetarget mobile object. If the system determines not to end the process,then the system proceeds with the process of S630 for the target mobileobject. If the system determines to end the process, then the systemends the process for the target mobile object, and may continue theprocess for other mobile objects.

As described above, the system manages mobile objects by utilizingmobile object agents realized by the plurality of the mobile objectservers. Since the system can transfer the mobile object agent betweenthe mobile object servers, it can efficiently manage the mobile objectstraveling around the plurality of regions. Furthermore, the systemcollects car probe data from the mobile objects and manages eventsgenerated from the car probe data by utilizing the event agents. Sinceeach event server divides a number of events occurring on its managingregions into a plurality of areas by utilizing the event agents, it canefficiently handle event information.

The process of S610 may be performed once before starting processesS620-S680. The process of S620-S680 may be performed for every mobileobject.

FIG. 7 shows an operational flow of an initialization process for amobile object, according to an embodiment of the present invention. Thepresent embodiment describes an example in which the system performs aninitialization process, such as the initialization process of S620 ofFIG. 6, through processes S621 to S623 shown in FIG. 7.

First, a gateway apparatus receives a setting data (including an ID ofthe mobile object, an ID(s) of passenger(s) and position information ofthe mobile object) from the mobile object (S621). The gateway apparatusdetermines one mobile object server that manages the mobile object basedon the position information of the mobile object. The gateway apparatusprovides the determined mobile object server with the setting data.Then, the determined mobile object server obtains information (e.g.,ID(s) of the passenger(s)) of at least one passenger of the mobileobject from the setting data of the mobile object.

Then, the mobile object server may request the object agent of theobject server for the mobile object to store the information of the atleast one passenger of the mobile object (S622). For example, eachmobile object may be mapped to each object agent of the object serversbased on values of the IDs of the mobile objects, and the mobile objectserver may identify one object agent corresponding to the ID of themobile object based on the calculation using the ID. Then, the mobileobject server may provide the object server managing the identifiedobject agent with the setting data including the position information,the ID of the mobile object, and ID(s) of passenger(s) of the mobileobject via the gateway apparatus.

Next, the object server stores the information of passenger(s) on anobject agent. In one embodiment, each of passengers may be preliminarilymapped to each of the passenger servers based on values of the IDs ofpassengers, and the passenger servers may have information ofpassengers. The object server may identify one passenger servercorresponding to the ID of a passenger based on the calculation usingthe ID. The object server may receive, via the gateway apparatus, theinformation of passengers from the passenger server corresponding to theID. Then, the object server may store or update the information of themobile object and the passengers of the mobile object, in the objectagent for the mobile object. The object server may include theinformation of a region that the mobile object currently exists, in theobject agent.

Next, the mobile object server 220 managing the region in which themobile object 10 exists generates a new mobile object agent for themobile object 10 (S623). In one embodiment, the mobile object server 220may copy the information of the object agent for the mobile object 10 tothe newly generated mobile object agent. For example, the mobile objectserver 220 may store the information of the mobile object 10 and theinformation of the at least one passenger of the mobile object 10 in thenewly generated mobile object agent for the mobile object 10.

FIG. 8 shows an operational flow of event processing, according to anembodiment of the present invention. The present embodiment describes anexample in which the system performs event processing, such as the eventprocessing of S650 of FIG. 6, through processes S651 to S659 shown inFIG. 8.

First, the event server may identify an event agent (S651). In oneembodiment, the event sever determines one event agent from theplurality of event agents based on the position information of thetarget mobile object. The determined event agent may be referred to as“target event agent.” For example, the event server determines a targetroute (or an edge of the map data) of the target mobile object based onthe position information and the map data, and selects, as a targetevent agent, an event agent that manages an area including the targetroute of the target mobile object indicated by the car probe data. Inanother embodiment, the car probe data of a target mobile object mayinclude the information of the target route of the target mobile object.

Next, the event server may edit event lists by the target event agentbased on the car probe data (S652). In one embodiment, the target eventagent may generate or update information of events (e.g., an edge thatan event occurs, an event ID, a location of an event, and content ofevent) of the target route on the event list based on information of thecar probe data. The event of the target route may be referred to as a“target event.”

Next, the event server may search, by the target event agent, aninfluence event on the target route on the area of the target eventagent based on the car probe data (S653). The influence event of thetarget route relates to an event on another route within a thresholddistance (e.g., a threshold travelling distance of the target route, athreshold number of edges away from the target route, and/or a thresholdtravelling time from the target route).

In one embodiment, the target event agent itself may search routes (oredge IDs) apart from the target route within the threshold distancebased on the topology information of routes in the regions, or mayrequest other entities (e.g., a server) to search for routes (or edgeIDs).

Next, the event server may determine whether the event list of thetarget event agent includes event entries corresponding to all influenceevents of the target route searched at S653 (S654). In one embodiment,the target event agent determines whether edges of the influence eventsare listed as edge IDs of events in the event list.

If an area managed by a target event agent includes the routes (edges)of all influence events relating to an event, then an event list of thetarget event agent includes corresponding event entries of all influenceevents. However, if the routes (edges) of any influence events aremanaged by other event agents, then the event list may not includecorresponding event entries of all influence events. If the decision ispositive, then the event server proceeds with the process S655 and ifnegative, the event server proceeds with the process S656.

At S655, the event server may edit a notification event ID list by thetarget event agent. The notification event ID list includes IDs ofinfluence events and edge IDs of the influence events that aredetermined to be not included in the event list of the target eventagent at S654. In other words, the notification event ID list is a listof event IDs of influence events that are not managed by the targetevent agent. Then, the event server may proceed with the process ofS656.

At S656, the event server may edit a notification event list for thetarget mobile object, by the target event agent. The notification eventlist is a list of events that may be helpful to the target mobile objecttraveling on the target route. The notification event list may includetarget events and influence events of the target events. The targetevent agent may add entries of the target events and the influenceevents in its managing event list for notification.

Next, the event server determines, by the target event agent, whetherthe notification event ID list has at least one entry. If the decisionis positive, then the event server proceeds with the process of S658,and if negative, then the event server ends the process of S650

At S658, the event server may identify, by the target event agent, anevent agent that manages an event list including events in thenotification event ID list. The determined event agent may be referredto as “remote event agent.”

Next, the event server may acquire information of events in thenotification event ID list (S659), and end the process S650. In oneembodiment, the target event agent may receive information of events inthe notification event ID list from the remote event agent, and edit thenotification event list based on the acquired information. In anotherembodiment, the target event agent may add entries of the influenceevents in the notification event ID list based on the acquiredinformation.

FIG. 9 shows an illustrative example of an event list, according to anembodiment of the present invention. As described in FIG. 9, the eventlist may include edge IDs of events, event IDs of events, locations ofevents, specific contents of events, and influence events relating toevents. In this embodiment, each route is represented as “edge.” Forexample, this event list indicates that an event (identified as “Eve0214”) has occurred along the full length of edge 0001 on the area, thatthe event has limited the speed to 30 km/h, and that edge 0001 includesan influence event identified as “Eve 0114.” The event list alsoindicates that an event (identified as “Eve 0114” on edge 0002) hasoccurred 32 m from the 1st node on edge 0002 on the area, that the eventis a closure of a route, and that edge 0001 includes influence eventsidentified as “Eve 0214” on edge 0001, “Eve 0421” on edge 0003, etc. Inone embodiment, the target event agent may add a new entry correspondingto an event detected by the car probe data, in the event list.

According to the first entry in the event list of FIG. 9, the edge 0001has influence event 0114. This may mean that a mobile object travelingon the edge 0001 is influenced by the event 0114 that has occurred apartfrom edge 0001 within a threshold distance. In response to receiving thecar probe data including the position information indicating that thetarget mobile object is traveling on the edge 0001, the target eventagent searches and obtains routes (edge IDs) apart from the target route(edge 0001) within the threshold distance, and then finds neighboringedge 0002 as a result. In response to receiving the car probe dataincluding the position information of the edge 0001, the target eventagent determines whether the edge of influence event (edge 0002)corresponding to the target route is listed as edge IDs in the eventlist.

The target event agent assigned to the area may generate or update acandidate event based on information from the target mobile object. Inone embodiment, the target event agent may generate or update candidateevents on the candidate event list including information of a pluralityof edges on the area of the event agent based on information of the carprobe data.

Although the event list of FIG. 9 includes information of influenceevents, the information of the influence events may be managed byanother list. In one embodiment, the event agent may manage both a firstevent list containing information of an event on the target route and asecond event list containing information of the influence event.

FIG. 10 shows an illustrative example of a candidate event list,according to an embodiment of the present invention. As described inFIG. 10, the event list may include edge IDs of candidate events, countsof detecting candidate events, locations of candidate events, andspecific contents of candidate events for each candidate event. Forexample, this candidate event list indicates that evidence of an event(congestion) has been observed twice along the full length of edge 0009on the area, and that evidence of an event (skid) has been observed onceat a point 15 m from the 2nd node on edge 0013 on the area.

The target event agent may determine whether to change a candidate eventin the candidate event list to an event in the event list. In oneembodiment, the target event agent may upgrade the candidate event tothe event based on information from other mobile objects. In this case,the target event agent counts occurrences of a candidate event observedby a plurality of mobile objects (including the target mobile object andother mobile objects). If the count of a candidate event exceeds athreshold value, then the target event agent determines that thecandidate event is upgraded to an event. In one embodiment, in responseto the upgrade, the target event agent deletes the entry of thecandidate event from the candidate event list, and generates a new entryof an event corresponding to the deleted candidate event. The eventservers may set the same or different criteria for upgrading candidateevents among the plurality of event agents.

FIG. 11 shows an illustrative example of a notification event list,according to an embodiment of the present invention. As described inFIG. 11, the notification event list may include edge IDs oftarget/influence events, event IDs of target/influence events, locationsof target/influence events, and specific contents of target/influenceevents. For example, this notification event list indicates that anevent (speed limit) has occurred along the full length of edge 0001 onthe area, and that an event (closure) has occurred at a point 32 m fromthe 1st node on edge 0002 on the area.

FIG. 12 shows a mobile object and events, according to an embodiment ofthe present invention. In the embodiment of FIG. 12, the target mobileobject 10 is traveling eastbound on the edge 0001, which is the targetroute. The target event agent EA1 manages an area including the edge0001, the edge 0002, the edge 0101, and the edge 0102, and theneighboring event agent EA2 manages an area including the edge 0003, theedge 0103, and the edge 0104.

Direction dependent edges are described in FIG. 12. However, edges maynot be direction dependent according other embodiments, and in suchembodiments, the event agent may manage events, candidate events, andinfluence events with direction information. The target event agent EA1manages an event (Eve 0214) on the edge 0001 as the target event in theevent list. Since the edge 0002 is apart from the edge 0001 within thethreshold distance, the target event agent EA1 also manages an event(Eve 0114) on the edge 0002 as an influence event in the event list. Thetarget event agent EA1 manages a notification event list including thetarget event (Eve0214) and the influence event (Eve 0114) for the targetmobile object 10.

In the embodiment of FIG. 12, the mobile object agent managing targetmobile object requests the event agent EA1 that manages the target event(e.g., Eve 0214) and the influence event (e.g., Eve 0114) to send thenotification event list including the target event and the influenceevent. In another embodiment, the mobile object agent may request theremote event agent EA2 that manages the information of influenceevent(s) (e.g., Eve0421) to send a notification event list containinginformation of the influence event(s) if the influence event is locatedoutside of the area including the target route (Edge 0001).

FIG. 13 shows an operational flow of mobile object processing, accordingto an embodiment of the present invention. The present embodimentdescribes an example in which the system manages the target mobileobject, such as in S660 of FIG. 6, through processes S661 to S669 shownin FIG. 13.

At S661, the mobile object server may determine whether the mobileobject agent for the target mobile object exists in the regiondetermined to be the region of the mobile object, such as the regiondetermined at S640. In other words, the mobile object server determineswhether the mobile object server manages the mobile object agent of thetarget mobile object. If the decision is positive, then the mobileobject server proceeds with the process S667, and if negative, themobile object server proceeds with the process S662.

At S662, the mobile object server may identify an object server thatincludes the object agent containing the information of the targetmobile object. In one embodiment, the mobile object server may identifythe object server in the same manner described in S622.

Next, at S663, the mobile object server may inquire the object server230 identified at S662 for the location of the mobile object agent ofthe target mobile object. The object server may refer to the objectagent of the target mobile object, obtain information of the mobileobject server that currently manages the mobile object agent MOA of thetarget mobile object, if it exists, and provide the mobile object serverwith the information.

Next, the mobile object server may determine whether the mobile objectagent for the target mobile object exists in any other regions. In otherwords, the mobile object server may determine which mobile object servermanages the mobile object agent for the target mobile object from theplurality of mobile object servers managing other regions, at S663. Ifthe decision is positive, then the mobile object server proceeds withthe process S666, and if negative the mobile object server proceeds withthe process S665.

At S665, the mobile object server generates a new mobile object agentMOA for the target mobile object. The mobile object server may generatethe mobile object agent MOA for the target mobile object by obtaininginformation of the target mobile object from the object server thatincludes the object agent containing the information of the targetmobile object. In one embodiment, the mobile object server may generatethe new mobile object agent in the same manner described in S623. Themobile object server may also communicate with the object server via thegateway apparatus, and register the current region of the target mobileobject in the object agent corresponding to the target mobile object. Bygenerating the new mobile object agent, the system can handle a newmobile object 10 that has been not managed by the mobile object server.

At S666, the mobile object server may transfer the mobile object agentfrom the other mobile object server determined to manage the mobileobject agent for the target mobile object at S664. In one embodiment,the mobile object server may receive information of the mobile objectagent for the target mobile object from the other mobile object server,and generate a new mobile object agent including the receivedinformation. The mobile object server may also communicate with theobject server via the gateway apparatus, and register the current regionof the target mobile object in the object agent of the target mobileobject.

Next, at S667, the mobile object server may receive a notification eventlist for the target mobile object. In one embodiment, the mobile objectserver first determines the target route where the target mobile objectis located. Then, the mobile object server may request the event agentthat manages the information of target event(s) and influence event(s)corresponding to the target route to send a notification event listcontaining information of the target event(s) and influence event(s) ofthe target route.

At S668, the mobile object server may update the current location of thetarget mobile object by the mobile object agent. In one embodiment, themobile object agent for the target mobile object updates the currentlocation of the target mobile object based on the position informationof the car probe data.

At S669, the mobile object server may execute the mobile object agentfor the target mobile object to provide the target mobile object withinformation that assists the target mobile object with traveling in thegeographic space based on the information included in the event list. Inone embodiment, the mobile object agent may provide the target mobileobject with information of events on the notification event list.

In one embodiment, the at least one mobile object server may execute themobile object agent for the target mobile object to provide the targetmobile object with information that assists the target mobile objectwith traveling in the geographic space based on the information of theat least one passenger of the target mobile object. For example, themobile object agent may provide the target mobile object with an alert,a notice, and/or an action list relating events on the notificationevent list depending on a number of passengers (e.g., for guiding a carpool lane), the age, gender, license, real time information (e.g.,driving history or sleep history), and characteristics of thepassengers.

The action list is a list of actions recommended to passengers inresponse to the events (e.g., braking, accelerating, and/or steering ofthe target mobile object).

The action list may include commands to the target mobile object forautomatic driving and/or driving assist. In one embodiment, the mobileobject agent may include information that the passenger is sensitive torough driving, and then the mobile object agent may provide commands togently drive the target mobile object. In one embodiment, the mobileobject agent may include information of driving skill of a driverpassenger, and then provide different commands depending on the skill ofthe driver. The mobile object server may provide the target mobileobject with the information via the gateway apparatus.

As described above, the mobile object server receives information fromthe target mobile object in the region assigned to the mobile objectserver, and generates the mobile object agent for the target mobileobject if there is no mobile object server among the plurality of mobileobject servers that is executing the mobile object agent.

FIG. 14 shows an exemplary configuration of the system 100, according toan embodiment of the present invention. In this embodiment, eachsubsystem 200 includes an event server 210, mobile object server 220, anobject server 230, and a passenger server 240. However, otherembodiments are also possible, in which each subsystem 200 comprises anycombination of singles or multiples of each server. In otherembodiments, the system 100 may manage allocation of object agents ofthe object server 230 and passenger agents of the passenger server 240in the subsystem 200. For example, the gateway apparatus 160 may changeallocation of the object/passenger agents to the subsystems 200 torectify the imbalance of data processing loads among the subsystems 200.

In the embodiment described above, the event server 210 may manageallocated event agents. In other embodiments, the system 100 may manageallocation of event agents to the event servers 210. For example, thegateway apparatus 160 may change allocation of event agents to the eventservers 210 to rectify the imbalance of loads of processing events amongthe event servers 210. In the embodiment described above, the eventserver 210 causes each event agent to manage allocated divided areaderived from a region. In other embodiment, the event server 210 causesat least one event agent to manage specific information regarding events(e.g., cross section of roads or other specific function(s) of a map,or, hurricane or other disaster/accident).

In the manner described above, the system 100 according to the presentembodiment may be operable to assist with movement of a plurality ofmobile objects 10 in a geographic space. For example, the system 100 canprovide event information concerning events that occur on a movementroute from the current position of a mobile object 10 to a destination.Furthermore, the system 100 can provide a mobile object 10 with aprediction result by predicting a route to reach the destination in theshortest time while avoiding traffic jams and the like, from amongmovement routes from the current position of this mobile object 10 tothe destination.

However, since the actual accidents, obstructions, traffic conditions,weather, and the like on the road change during the movement of theautomobile, even if the event information acquired at one time issupplied to the mobile objects 10, there are cases where the actualconditions on the road differ from the event information. For example,if a plan includes movement that accompanies the passage of time usedfor a rest, meals, stops along the way, or the like, while travelling tothe destination from the current position, it is difficult to realizehigh prediction accuracy when the conditions on the movement route arepredicted using just the event information at the point in time when themovement begins.

Therefore, the system 100 according to the present embodiment may beoperable to adapt to such event information that changes in time series,and to accurately assist with the movement of the mobile object 10 evenwhen the movement occurs over time. Such a system 100 is described as athird exemplary configuration of the system 100 according to the presentembodiment. In the system 100 having the third exemplary configuration,a plurality of event agents may be operable to manage event informationat one timing while a plurality of predictive environment agents may beoperable to manage expected event information at a future timing afterthe one timing.

FIG. 15 shows a general configuration of the event agents and thepredictive environment agents executed by the event server 210 accordingto the present embodiment. Here, each event agent is labeled as EA andeach predictive environment agent is labeled as PEA. The event server210 may be operable to execute a plurality of EAs correspondingrespectively to each area, in order to manage the events occurring inthe plurality of areas, as described in the example of FIG. 2. FIG. 15shows an example in which a region A is divided into sixteen areas,sixteen EAs are assigned respectively to the sixteen areas resultingfrom the division, and each EA manages a corresponding area, in the samemanner as in FIG. 2.

Here, the sixteen EAs may each be operable to manage an event that wasgenerated or acquired during a predetermined time interval, as an eventat the timing T1. For example, EA2 may manage the “closure” event in thearea displayed along with EA2 on the map, as the event at the timing T1.Furthermore, EA4 may manage the “speed limit” event in the areadisplayed along with EA4 on the map, as the event at the timing T1.

The event server 210 may be operable to, in addition to executing suchEAs, execute a plurality of PEAs that manage expected events at futuretimings differing from the timing T1. Here, the plurality of PEAs maycorrespond respectively to the plurality of areas managed by theplurality of EAs. In other words, the plurality of EAs and PEAs may beassigned to every one of the same regions in the geographic space.

FIG. 15 shows an example in which a total of sixteen PEAs from PEA1 a toPEA16 a are assigned respectively to the sixteen areas resulting fromthe division and correspond to each area managed by one of the sixteenEAs, and the expected events in these 16 areas at the timing T2 are eachmanaged by the corresponding PEA. Furthermore, FIG. 15 shows an examplein which a total of sixteen PEAs from PEA1 b to PEA16 b are assignedrespectively to the sixteen areas resulting from the division andcorrespond to each area managed by one of the sixteen EAs, and theexpected events in these sixteen areas at the timing T3 are each managedby the corresponding PEA.

PEA1 a to PEA16 a may manage events that are predicted to occur at thetiming T2. For example, according to a prediction result that the“closure” event will continue until the timing T2 in the area managed byEA2, PEA2 a may manage this “closure” event as the expected event at thetiming T2.

Furthermore, PEA1 b to PEA16 b may manage events that are predicted tooccur at the timing T3. For example, according to a prediction resultthat the “closure” event will continue until the timing T3 in the areamanaged by EA2, PEA2 b may manage this “closure” event as the expectedevent at the timing T3. As a further example, according to a predictionresult that the “speed limit” event will continue until the timing T3 inthe area managed by EA4, PEA4 b may manage this “speed limit” event asthe expected event at the timing T3.

Furthermore, the plurality of EAs and the plurality of PEAs may updatethe information of the events being managed, in accordance with thepassage of time. In other words, in response to time passing from thetiming T1 to the timing T2, the sixteen EAs may manage a plurality ofevents at the timing T2. Similarly, the total of sixteen PEAs from PEA1a to PEA16 a may manage a plurality of expected events at the timing T3.

In the manner described above, the system 100 having the third exemplaryconfiguration may assign a plurality of PEAs for managing expectedevents, during each of a plurality of predetermined time intervals.These time intervals may be substantially constant time intervals.Furthermore, the system 100 may cause the time intervals to be variabledepending on the event. The system 100 may be operable to handle eventinformation that changes in time series, by using the correspondingplurality of PEAs to manage the time-series changing of the eventsmanaged by the plurality of EAs. The following describes an exemplaryconfiguration of the system 100 having the third exemplaryconfiguration.

FIG. 16 shows the third exemplary configuration of the system 100according to the present embodiment. In the system 100 according to thepresent embodiment, components that have substantially the sameoperation as components of the system 100 according to the presentembodiment shown in FIG. 3 and FIG. 14 are given the same referencenumerals, and descriptions thereof are omitted. In the system 100 havingthe third exemplary configuration, at least one subsystem 200 includesan event server 210 that is operable to predict and manage futureevents. In the present embodiment, the event server 210 of eachsubsystem 200 further includes an acquiring section 310, a storagesection 320, an EA processing section 330, a PEA processing section 340,and a reporting section 350.

The acquiring section 310 may be operable to acquire informationrelating to an event. The acquiring section 310 may acquire inputinformation relating to the event from outside the system 100, via thenetwork or the like. The acquiring section 310 acquires, as the inputinformation relating to the event, weather information, traffic jaminformation, accident information, travel regulation information,emergency vehicle movement information, or the like in each portion ofthe geographic space, for example. Furthermore, the acquiring section310 may acquire detection information relating to the event, which isdetected by at least one mobile object 10 among the plurality of mobileobjects 10. For example, the acquiring section 310 acquires, as thedetection information relating to the event, weather conditions, trafficjam conditions, accident conditions, travel regulation conditions,pedestrian crossing conditions, obstruction conditions, and the like onthe road detected by a mobile object 10.

The storage section 320 may be operable to store the input informationand detection information acquired by the acquiring section 310.Furthermore, the storage section 320 may store geographic data managedby the subsystem 200. The storage section 320 may store the inputinformation and detection information in association with the positionof this geographic data. Furthermore, the storage section 320 may storeeach of intermediate data, calculation results, parameters, and the likethat are generated by or used in the process of managing the pluralityof mobile objects 10 and the plurality of events performed by thesubsystem 200. The storage section 320 may supply the stored data to thesource of a request, in response to any component in the system 100making a request.

The EA processing section 330 may be operable to perform a process ofthe EA handling an event occurring in the geographic space in which theplurality of mobile objects 10 move. The EA processing section 330 maybe operable to manage each event occurring within a predetermined timeinterval in the geographic space, as an event at one time point. The EAprocessing section 330 may be operable to perform the processing ofevents described in FIG. 8. The EA processing section 330 may beoperable to update the plurality of EAs in response to reaching anearliest future timing among a plurality of future timings, as a resultof the passage of time. The EA processing section 330 includes an eventgenerating section 332 and an expected event generating section 334.

The event generating section 332 may be operable to generate an eventbased on at least one of the input information and the detectioninformation. The event generating section 332 may generate an eventcorresponding to the input information. The event generating section 332generates the weather, traffic, accidents, travel regulations, emergencyvehicles, and the like on the road as the events, in association withpositions on the road, for example. Furthermore, the event generatingsection 332 may generate an event corresponding to the detectioninformation from the mobile object 10, in association with a position onthe road.

The event generating section 332 may generate an event by analyzing theinput information and/or the detection information. The event generatingsection 332 may generate an event that is a slippery road, in responseto a number of mobile objects 10 that is greater than or equal to athreshold value activating their ABS (Antilock Break System) in the sameregion on the road, for example.

The expected event generating section 334 may be operable to generate anexpected event that is to be handled by each of at least one of theplurality of PEAs, based on an event newly generated by the eventgenerating section 332. Here, the expected event may be an eventobtained by predicting the change in time series of an event handled byan EA.

The expected event generating section 334 may generate the expectedevent based on the event generated according to the input informationand on this input information. For example, according to inputinformation providing notification of construction on the road, theevent generating section 332 generates the “construction” event. Then,if a scheduled time for the construction time range, constructionperiod, and the like are included in this input information, theexpected event generating section 334 may generate the “construction”expected event corresponding to this scheduled time.

The expected event generating section 334 may be operable to generatethe expected event by analyzing the input information and/or detectioninformation. For example, the event generating section 332 generates the“emergency vehicle” event according to input information providingnotification that an emergency vehicle is passing by and/or detectioninformation obtained by detecting the passage of an emergency vehicle.The expected event generating section 334 may then predict the movementroute of this emergency vehicle according to information such as themovement speed, movement direction, destination, patrol route, or thelike of the emergency vehicle, and may generate the “emergency vehicle”expected event.

The expected event generating section 334 may be operable to generatethe expected event using a past history. For example, the expected eventgenerating section 334 predicts the time during which a traffic jamcaused by an accident will continue, by using the history of pastaccidents, and generates the “traffic jam” expected event. Furthermore,the expected event generating section 334 may predict the continuationtime of the traffic jam using a trend of past traffic jams correspondingto the day of the week and time range, and generate the “traffic jam”expected event.

The expected event generating section 334 may be operable to furthergenerate a derived expected event that is predicted to be derived from agenerated expected event, after the expected event has been generated.For example, after the generation of the “emergency vehicle” expectedevent, if a prediction is made that a traffic jam will occur due to thisemergency vehicle passing through a road on which a plurality of mobileobjects are moving, the expected event generating section 334 generatesthe derived “traffic jam” expected event. The expected event generatingsection 334 may calculate the timing at which this emergency vehiclereaches the road on which the plurality of mobile objects are moving,and may predict the timing at which the derived “traffic jam” expectedevent will occur.

The expected event generating section 334 may supply the generatedexpected event to the PEA that is to manage this expected event. The PEAmay store information concerning the generated expected event inassociation with a position on the map. The PEA may store a history ofexpected events.

The PEA processing section 340 may be operable to perform the processesof at least one PEA handling each expected event. The PEA processingsection 340 may be operable to perform the processes of a plurality ofPEAs corresponding to each of a plurality of future timings. The PEAprocessing section 340 may be operable to perform the processes of aplurality of PEAs corresponding to each of a plurality of future timingsin every predetermined time interval. For example, as described in FIG.15, the PEA processing section 340 may perform the processes of aplurality of PEAs corresponding to the future timings T2, T3, etc. thatare after the timing T1 corresponding to the processes of the EAs. ThePEA processing section 340 includes a PEA updating section 342.

The PEA updating section 342 may be operable to update a plurality ofPEAs in response to reaching the earliest future timing among aplurality of future timings, as a result of the passage of time. Forexample, the PEA updating section 342 may update the plurality of PEAsif time has passed from the timing T1 to the timing T2, for example.

The reporting section 350 may be operable to report to one mobile object10 about the information concerning the expected event handled by a PEAassociated with the timing at which the one mobile object 10 passesthrough a geographic location, among the one or more PEAs. The reportingsection 350 may report to the mobile object agent being executed by themobile object server 220 about the information concerning the expectedevent, in response to a request from this mobile object agent. Thereporting section 350 may acquire the information concerning the eventand the expected event from the EA and the PEA respectively performed bythe EA processing section 330 and the PEA processing section 340, andsupply the mobile object agent with this information.

In the system 100 having the third exemplary configuration describedabove, the PEAs manage the future expected events for event informationthat changes in time series, and therefore the system 100 can accuratelyassist with the movement of mobile objects 10 even when this movementoccurs along with the passage of time. The following describes theoperation of the system 100 having the third exemplary configuration.

FIG. 17 shows a first exemplary operational flow of the system 100having the third exemplary configuration according to the presentembodiment. The event server 210 according to the present embodiment maybegin to generate the events and expected events in the geographic spaceand begin the management, by performing the operational flow shown inFIG. 17. Specifically, the operational flow shown in FIG. 17 may beperformed by the event server 210 in addition to or instead of the eventserver processing (S650) described in FIG. 6 and FIG. 8.

First, at S702, the acquiring section 310 may acquire informationrelating to an event. The acquiring section 310 may acquire the inputinformation and/or the detection information relating to the event. Theacquiring section 310 may supply the acquired information to the EAprocessing section 330 and the PEA processing section 340. Instead of orin addition to this, the acquiring section 310 may store the acquiredinformation in the storage section 320.

Next, at S704, the event generating section 332 may generate the eventcorresponding to the information acquired by the acquiring section 310.The event generating section 332 may supply the generated event to theEA that is to manage this event. The EA may store the informationconcerning the generated event in association with a position on themap. The EA may store a history of events.

Next, at S706, the EA processing section 330 may judge whether the eventgenerated by the event generating section 332 is an event that changesin time series. If the generated event is an event that does not changeeven after a predetermined interval has been exceeded, the EA processingsection 330 may judge that this event is an event that does not changein time series (S706: No). The predetermined interval may be arelatively long time compared to the interval during which the mobileobject 10 moves on the planned movement route, and may be one day or thelike, for example.

If the input information indicates construction that has a constructionperiod exceeding one day or has a construction scale that does notchange for more than one day, for example, the EA processing section 330may judge that this event is a “construction” event that does not changein time series. In this case, this “construction” event may be managedby the EA, in the same manner as the operation of the systems 100 havingthe first exemplary configuration and the second exemplaryconfiguration. The EA processing section 330 may supply this“construction” event to the EA that is to manage this event, and maythen end the operation for generating this “construction” event.

At S706, according to the type, content, or the like of the generatedevent, the EA processing section 330 may judge that this event is anevent that changes in time series (S706: Yes). For example, if the eventgenerating section 332 generates a “rain” event according to inputinformation concerning the weather conditions that changes from rain inthe morning to sunny in the afternoon, the EA processing section 330 mayjudge that this “rain” event is an event that changes in time series.

Next, at S708, the EA processing section 330 may judge whether the eventgenerated by the event generating section 332 is an event that moves inthe geographic space. For example, if the event generating section 332generates the “rain” event according to input information concerningweather conditions of rain caused by rain clouds moving at a speed of 20km/h, the EA processing section 330 may judge that this “rain” event isa moving event (S708: Yes).

At S710, the EA processing section 330 may predict a range in which anevent is positioned as a result of the movement during a time intervalto be processed by the EA, for this moving event. For example, the EAprocessing section 330 predicts the range in which the “rain” event ispositioned in the geographic space according to the expected movementdirection of the “rain” event, the expected movement speed, the expectedtime until the rain dissipates, and the like, for example.

Next, at S712, the EA processing section 330 may transmit the generatedevent to one or more EAs that manage the range in which the event ispositioned. For example, the EA processing section 330 may transmit this“rain” event to all of the EAs that manage the range in which this“rain” event is positioned. In this way, even when localized heavy rainmoves for a short time, for example, it is possible for the EAscorresponding to the region affected by this heavy rain to manage the“rain” event.

At S708, if it is judged that the event generated by the eventgenerating section 332 is not an event that moves in the geographicspace (S708: No), or following the process of S712 at which theinformation concerning a moving event is transmitted to the EA, thesystem 100 may perform the process of S714. At S714, the expected eventgenerating section 334 may generate the expected event. The expectedevent generating section 334 may generate the expected event based onjudgment material obtained by the judgment of an event that changes overtime at S706. Furthermore, the expected event generating section 334 maygenerate the expected event based on the judgment material obtained bythe judgment of an event that changes over time at S708.

The expected event generating section 334 generates the “rain” expectedevent at the timing T2 according to the expected movement direction, theexpected movement speed, the expected time until dissipation, and thelike of rain clouds, for example. In the same manner, the expected eventgenerating section 334 may generate the “rain” expected event at eachtiming from the timing T3 and later until the expected time untildissipation of the rain clouds has passed. The expected event generatingsection 334 may associate information including at least one of theexpected movement direction, the expected movement speed, the existenceprobability, the dissipation probability, and the change probability inassociation with an expected event.

Next, at S716, the expected event generating section 334 may transmitthe generated expected event to the PEA that manages the expected event.The expected event generating section 334 may transmit the expectedevent to the PEA that is to perform management corresponding to a timingat which the expected event occurs and a position of the expected eventin the geographic space.

As a result of the system 100 having the third exemplary configurationperforming the operational flow described above, in addition to an EAmanaging an event, it is possible to generate and manage an expectedevent obtained by predicting change in time series of this event. Thesystem 100 having the third exemplary configuration may assist with themovement of a plurality of mobile objects 10, using such expectedevents. The following describes the assistance operation of the system100 having the third exemplary configuration.

FIG. 18 shows a second exemplary operational flow of the system 100having the third exemplary configuration according to the presentembodiment. The event server 210 and the mobile object server 220according to the present embodiment may recommend a route by which amobile object 10 can reach a destination, by performing the operationalflow shown in FIG. 18. Specifically, the operational flow shown in FIG.18 may be performed by the event server 210 and the mobile object server220 in addition to or instead of the event server processing (S650) andthe mobile object server processing (S660) described in FIG. 6 and FIG.8.

The mobile object server 220 according to the present embodiment may beoperable to perform the processes of the mobile object agents associatedwith each of the plurality of mobile objects 10. In other words, themobile object server 220 may function as the mobile object agentprocessing section.

First, at S722, the system 100 having the third exemplary configurationmay receive information concerning a destination and a request for aroute search from one mobile object 10. The system 100 may acquire routesearch conditions such as locations to be stopped at during travel,arrival timing, whether to use toll roads, whether to prioritize time,whether to avoid traffic jams, and the like. The mobile object server220 may perform the mobile object agent corresponding to the one mobileobject 10. This mobile object agent may read and acquire informationconcerning the current position. The mobile object agent may communicatewith the one mobile object 10 to acquire the current positioninformation.

Next, at S724, the mobile object agent may perform the route search fromthe current position to the destination position. The mobile objectagent may search for a plurality of candidates for routes to thedestination. Furthermore, if there are a plurality of route searchconditions, the mobile object agent may search for the plurality ofcandidates using different priority rankings among the plurality ofconditions.

Next, at S726, the mobile object may transmit the search result to oneor more EAs that manage the routes included in this search result. Forexample, the mobile object agent transmits the information concerningportions managed by one EA among the routes in the search result to thisone EA. Furthermore, the mobile object agent may transmit informationconcerning a scheduled timing for passing through the route in thesearch result to the EA. For example, the mobile object agent maytransmit the scheduled timing at which the mobile object 10 is to passthrough a portion managed by one EA in this route to the one EA, alongwith the information concerning the portion of this route.

If a route of the search result is managed by a plurality of EAs, themobile object agent may transmit information concerning the portion ofthe route managed by each EA to these EAs. Furthermore, if there are aplurality of routes in the search result, the mobile object agent maytransmit the information concerning the portion of the route to theplurality of EAs for every route. The mobile object agent may transmitthe search result information via the reporting section 350.

Instead of this, the mobile object agent may transmit informationconcerning the route of the search result and the arrival time to thereporting section 350. The reporting section 350 may select one or morecorresponding EAs, based on the received route. The reporting section350 may transmit the route information and the arrival time informationto the selected one or more EAs.

Next, at S728, the EA may judge the EA and the PEA to be searched,according to the received information concerning the scheduled timing.If the received scheduled timing is within a range of a time intervalmanaged by this EA (S728: Yes), this EA may search for an event withinthis EA at S730. The EA may search for an event on the received routeand pick up information concerning the event handled by the EA at ageographic location through which the one mobile object 10 passes.

Furthermore, if the received scheduled timing is outside a range of atime interval managed by this EA (S728: No), the EA may transmit thereceived information to the corresponding PEA at S732. The EA may setthe corresponding PEA to be the PEA for which this scheduled timing iswithin the range of the time interval managed by the PEA, from among theplurality of PEAs. At S734, the corresponding PEA may search for anevent on the received route and pick up information concerning theexpected event handled by the PEA at a geographic location through whichthe one mobile object 10 passes. The PEA may transmit the search resultto the EA. The EA may transmit the search result to the reportingsection 350.

After the search by the EA and/or PEA, at S736, the reporting section350 may provide a report of the search result. The reporting section 350may provide a report including an organized summary of several searchresults, for every route that has been searched for by the mobile objectagent.

In the manner described above, the reporting section 350 may be operableto receive a request from one mobile object agent associated with onemobile object 10, and search for an event in an EA and/or PEA. In thisway, the reporting section 350 can report to the one mobile object agentabout the information concerning the expected event handled by the PEAassociated with the timing at which the one mobile object 10 passesthrough the geographic location, among the plurality of PEAs. In thisway, the one mobile object agent can assist with the movement of the onemobile object 10, based on the information concerning the expected eventreported to the one mobile object agent.

FIG. 19 shows a schematic configuration of a route search performed bythe system 100 having the third exemplary configuration according to thepresent embodiment. FIG. 19 shows an example in which four EAs and eightPEAs are assigned to four areas within a region A. For example, the fourEAs from EA1 to EA4 may manage events in the four areas showncorresponding to EA1 to EA4 on the map at the timing T1. Furthermore,the four PEAs from PEAa1 to PEAa4 may manage events in the four areasshown corresponding to PEAa1 to PEAa4 on the map at the timing T2. Yetfurther, the four PEAs from PEAb1 to PEAb4 may manage events in the fourareas shown corresponding to PEAb1 to PEAb4 on the map at the timing T3.

Here, each of the four areas may be substantially the same area at eachtiming. For example, the areas indicated by EA1, PEAa1, and PEAb1 on themap are substantially the same area. Furthermore, the events managed byEA1 to EA4 may be events occurring at the current timing T1, forexample. Furthermore, the expected event at each timing may be an eventpredicted to occur in a predetermined time interval.

For example, the event predicted to occur in a time interval that isgreater than or equal to 30 minutes and less than 90 minutes from thecurrent timing T1 is managed by PEAa1 to PEAa4 as the expected event atthe timing T2 that is one hour later. Furthermore, the event predictedto occur in a time interval that is greater than or equal to 90 minutesand less than 150 minutes from the current timing T1 is managed by PEAb1to PEAb4 as the expected event at the timing T3 that is two hours later.The event occurring at the current timing T1 may include an eventpredicted to occur in a time interval that is less than 30 minutes fromthe current timing T1.

FIG. 19 shows an example in which the one mobile object 10 is positionedin the area assigned to EA4 at the timing T1. The following describes anexample in which the one mobile object 10 performs a search for a routefrom the current position to a building 12. Here, the building 12 ispositioned in the area assigned to EA2, PEAa2, and PEAb2 at therespective timings.

Here, FIG. 19 shows an example in which, at the current timing T1, a“speed limit” event occurs in a portion of the road managed by EA1, a“closure” event occurs in a portion of the road managed by EA2, and a“traffic jam” event and a “heavy rain” event occur in a portion of theroad managed by EA3. In this case, when the route search from thecurrent position of the one mobile object 10 to the building 12 isperformed, the one mobile object 10 is notified about the “closure,”“traffic jam,” and “heavy rain” events occurring in the shortest route.Accordingly, the one mobile object 10 is recommended to select a routethat avoids these events.

However, there are cases where a route avoiding these events is not theroute adopted for the actual movement, due to the change over time ofthe events and the movement time of the mobile object 10. For example,as shown in the example of FIG. 19, the “traffic jam” event and the“heavy rain” event managed by EA3 at the timing T1 dissipate at thetiming T2. In other words, even if the one mobile object 10 moves in thearea assigned to PEAa3 at the timing T2, it is possible for the onemobile object 10 to move smoothly. Accordingly, the one mobile object 10preferably moves on the shortest route without attempting tointentionally avoid these events.

Here, FIG. 19 shows that PEAa2 manages the occurrence of the “closure”and “heavy rain” expected events at the timing T2. Furthermore, FIG. 19shows an example in which the “closure” and “heavy rain” expected eventsmanaged by PEAa2 at the timing T2 dissipate at the timing T3, and PEAb2does not manage these expected events. Accordingly, the one mobileobject 10 can move smoothly even when moving in the area assigned toPEAb2 at the timing T3, and therefore the one mobile object 10preferably moves on the shortest route.

In this way, an event moves, occurs, and dissipates along with thepassage of time, and therefore it is preferably to perform the routesearch corresponding to this change of the event in time series. If onemobile object 10 has searched for the shortest route in the area managedby EA4, the system 100 having the third exemplary configuration canacquire not only the events managed by EA2, EA3, and EA4, but also theexpected events managed by PEAa2, PEAa3, PEAa4, PEAb2, PEAb3, and PEAb4.

In other words, the system 100 having the third exemplary configurationcan, for one mobile object 10, propose a route by which the mobileobject 10 can move to the building 12 that is the destination by movingto the area managed by PEAa3 one hour later and then moving to the areamanaged by PEAb2 two hours later, as the optimal route. In this way, thesystem 100 having the third exemplary configuration can more accuratelyassist with the movement of the mobile object 10 by managing, inaddition to the events occurring at the timing T1, expected events thatare expected to occur in the future after the timing T1.

In this way, even if the mobile object 10 moves for a longer time thanthe time needed to move directly on the shortest route, due to stops forshopping, meals, visiting customers, or the like while in the process ofmoving to the destination, for example, the system 100 having the thirdexemplary configuration can suitably assist with the movement of themobile object 10. Furthermore, even if the mobile object 10 makes a sidetrip that does not involve moving on the shortest route, the system 100having the third exemplary configuration can suitably assist with themovement of the mobile object 10.

Furthermore, the system 100 may update the events and expected events tobe managed, according to the passage of time from the timing T1 to thetiming T2. Specifically, the PEA updating section 342 may be operable toshift a plurality of the PEAs to be earlier in the time series order,and reassign these PEAs to a plurality of future timings updated usingthe future timing that follows the earliest future timing as the origin.In this way, if the timing has changed from T1 to T2, for example, thesystem 100 causes the plurality of EAs to manage events at the timing T2and causes the plurality of PEAs that managed the events at the timingT2 to manage the expected events at the timing T3.

In this way, the system 100 may update the events managed by the EAs andthe PEAs every time a predetermined interval time passes. If a requestfor a route search is received from a mobile object 10, the system 100may update the information concerning the events on the shortest routeand notify the mobile object 10, every time the interval time passes.

The system 100 having the third exemplary configuration can moreaccurately assist with the movement of a mobile object 10 by having thePEAs suitably manage the expected events. The following describes theexpected event management operation of the system 100 having the thirdexemplary configuration.

FIG. 20 shows a third exemplary operational flow of the system 100having the third exemplary configuration according to the presentembodiment. The event server 210 according to the present embodiment mayperform the operational flow shown in FIG. 20 to manage the expectedevents in the geographic space. Specifically, the operational flow shownin FIG. 20 may be performed by the event server 210 in addition to orinstead of the event server processing (S650) described in FIG. 6 andFIG. 8.

First, at S742, the PEA acquires the information concerning the expectedevent to be managed. The PEA may acquire an event generated by theexpected event generating section 334. In other words, the PEA mayreceive information concerning the expected event according to theoperation of S716 described in FIG. 17.

Next, at S744, the PEA judges whether the received expected event is anew event. The PEA may determine whether the event is new by making acomparison with the expected event history. For example, the PEA judgeswhether the event is new by comparing the type, position on the map,expected movement direction, expected movement speed, existenceprobability, dissipation probability, change probability, and the likeof the expected event to the history of past expected events.

If a corresponding expected event does not exist in the past history,the PEA may judge that the event is a new event (S744: Yes), and setthis expected event at S746. The PEA may set the expected event inassociation with the type, position on the map, expected movementdirection, expected movement speed, existence probability, dissipationprobability, change probability, and the like.

Furthermore, if a corresponding expected event does exist in the pasthistory, the PEA may judge that the event is not a new event (S744: No).In this case, at S748, the PEA may update this expected event. The PEAmay update the position on the map, expected movement direction,expected movement speed, existence probability, dissipation probability,change probability, and the like, according to the received informationconcerning the expected event. Furthermore, the PEA may update anotherexpected event currently occurring. In this case, the PEA may move theposition of the other expected event according to the expected movementdirection and the expected movement speed. Furthermore, the PEA mayincrease or decrease the existence probability of the other expectedevent, according to the dissipation probability.

Here, if the expected event generating section 334 further predicts aderived expected event that is predicted to derive from the generatedexpected event, the PEA may acquire this derived expected event at S750.If the derived expected event is acquired (S750: Yes), the PEA may judgewhether the received derived expected event is a new event at S752. ThePEA may judge whether the derived expected event is a new event in thesame manner as the judgment for the expected event.

If it is judged that the derived expected event is a new event (S752:Yes), the PEA may set this derived expected event at S754. If it isjudged that the derived expected event is not a new event (S752: No),the PEA may update this derived expected event at S756. Furthermore, thePEA may update another derived expected event, in the same manner as theexpected event.

Next, at S758, the PEA may detect a completed event, from among theupdated expected events and derived expected events. For example, thePEA may set an event whose existence probability is less than apredetermined threshold value to be a completed event. Furthermore, thePEA processing section 340 may notify the PEA about the informationconcerning an event that has been completed or an event that did notactually occur in the geographic space, among the expected eventsgenerated by the expected event generating section 334.

If storage of an expected event continues for longer than apredetermined reference time and there is an event present for whichnotification indicating the event is an expected event has not beenreceived from the expected event generating section 334, the PEA maydelete this event. Furthermore, the PEA may make an inquiry to a nearbymobile object agent about whether such an event actually exists. In themanner described above, if there is a completed event or an event thatdid not actually occur in the geographic space (S758: Yes), the PEA canremove and delete this completed event at S760.

The PEA can set and manage the expected events by performing theoperation described above. Furthermore, the PEA can reduce the increasein the processing load caused by an increase in unnecessary eventinformation, by deleting the completed events. In this way, the system100 having the third exemplary configuration manages the expected eventsbased on the results obtained by the PEA monitoring the events, and cantherefore suitably manage the expected events.

In the system 100 having the third exemplary configuration describedabove, the expected event generating section 334 generates an eventexpected based on the time series change of an event handled by the EAas the expected event. For example, the expected event generatingsection 334 is described as transmitting one expected event to the PEAassigned to one region, in response to the event occurring in the oneregion to which one EA is assigned according to the processing of theone EA.

Here, there are cases where an event that has occurred in one region isexpected to move to another adjacent region at the next timing. In sucha case, the expected event generating section 334 may generate theexpected event in the other region adjacent thereto based on the eventthat occurred in the one region. Specifically, the expected eventgenerating section 334 may be operable to generate one expected eventpositioned in a region adjacent to the one region in correspondence withthe event generated in the one region to which one EA is assigned,according to the processing of the one EA. Furthermore, the expectedevent generating section 334 may be operable to transmit one expectedevent to an adjacent PEA assigned to an adjacent region, in response tothe one expected event being generated in the adjacent region.

The expected event generating section 334 may be operable to, if oneexpected event generated according to the processing of one EA istransmitted to an adjacent PEA assigned to an adjacent region, transmitthe this one expected event to the adjacent PEA via an adjacent EAassigned to the adjacent region. In this way, even if an event isexpected to move from an area managed by an EA to an area adjacentthereto, the system 100 having the third exemplary configuration cangenerate an expected event in the adjacent area.

In the system 100 having the third exemplary configuration describedabove, the EA handles an event and the PEA handles an expected eventobtained by predicting the change in time series of the event handled bythe EA. Here, the event that changes in time series can occur as anevent relating to the environment of a plurality of mobile objects 10,and therefore an environment agent that is independent from the EA mayhandle the time-series event. In this case, a predictive environmentagent may handle the expected events at the future timings,independently from the EA. In this case, the subsystem 200 may furtherinclude an environment agent server that is independent from the eventserver 210. Specifically, the environment agent server may be operableto execute the environment agent and the predictive environment agent.

FIG. 21 shows an exemplary hardware configuration of a computeraccording to the embodiment of the invention. A program that isinstalled in the computer 800 can cause the computer 800 to function asor perform operations associated with apparatuses of the embodiments ofthe present invention or one or more sections (including modules,components, elements, etc.) thereof, and/or cause the computer 800 toperform processes of the embodiments of the present invention or stepsthereof. Such a program may be executed by the CPU 800-12 to cause thecomputer 800 to perform certain operations associated with some or allof the blocks of flowcharts and block diagrams described herein.

The computer 800 according to the present embodiment includes a CPU800-12, a RAM 800-14, a graphics controller 800-16, and a display device800-18, which are mutually connected by a host controller 800-10. Thecomputer 800 also includes input/output units such as a communicationinterface 800-22, a hard disk drive 800-24, a DVD-ROM drive 800-26 andan IC card drive, which are connected to the host controller 800-10 viaan input/output controller 800-20. The computer also includes legacyinput/output units such as a ROM 800-30 and a keyboard 800-42, which areconnected to the input/output controller 800-20 through an input/outputchip 800-40.

The CPU 800-12 operates according to programs stored in the ROM 800-30and the RAM 800-14, thereby controlling each unit. The graphicscontroller 800-16 obtains image data generated by the CPU 800-12 on aframe buffer or the like provided in the RAM 800-14 or in itself, andcauses the image data to be displayed on the display device 800-18.

The communication interface 800-22 communicates with other electronicdevices via a network 800-50. The hard disk drive 800-24 stores programsand data used by the CPU 800-12 within the computer 800. The DVD-ROMdrive 800-26 reads the programs or the data from the DVD-ROM 800-01, andprovides the hard disk drive 800-24 with the programs or the data viathe RAM 800-14. The IC card drive reads programs and data from an ICcard, and/or writes programs and data into the IC card.

The ROM 800-30 stores therein a boot program or the like executed by thecomputer 800 at the time of activation, and/or a program depending onthe hardware of the computer 800. The input/output chip 800-40 may alsoconnect various input/output units via a parallel port, a serial port, akeyboard port, a mouse port, and the like to the input/output controller800-20.

A program is provided by computer readable media such as the DVD-ROM800-01 or the IC card. The program is read from the computer readablemedia, installed into the hard disk drive 800-24, RAM 800-14, or ROM800-30, which are also examples of computer readable media, and executedby the CPU 800-12. The information processing described in theseprograms is read into the computer 800, resulting in cooperation betweena program and the above-mentioned various types of hardware resources.An apparatus or method may be constituted by realizing the operation orprocessing of information in accordance with the usage of the computer800.

For example, when communication is performed between the computer 800and an external device, the CPU 800-12 may execute a communicationprogram loaded onto the RAM 800-14 to instruct communication processingto the communication interface 800-22, based on the processing describedin the communication program. The communication interface 800-22, undercontrol of the CPU 800-12, reads transmission data stored on atransmission buffering region provided in a recording medium such as theRAM 800-14, the hard disk drive 800-24, the DVD-ROM 800-01, or the ICcard, and transmits the read transmission data to network 800-50 orwrites reception data received from network 800-50 to a receptionbuffering region or the like provided on the recording medium.

In addition, the CPU 800-12 may cause all or a necessary portion of afile or a database to be read into the RAM 800-14, the file or thedatabase having been stored in an external recording medium such as thehard disk drive 800-24, the DVD-ROM drive 800-26 (DVD-ROM 800-01), theIC card, etc., and perform various types of processing on the data onthe RAM 800-14. The CPU 800-12 may then write back the processed data tothe external recording medium.

Various types of information, such as various types of programs, data,tables, and databases, may be stored in the recording medium to undergoinformation processing. The CPU 800-12 may perform various types ofprocessing on the data read from the RAM 800-14, which includes varioustypes of operations, processing of information, condition judging,conditional branch, unconditional branch, search/replace of information,etc., as described throughout this disclosure and designated by aninstruction sequence of programs, and writes the result back to the RAM800-14. In addition, the CPU 800-12 may search for information in afile, a database, etc., in the recording medium. For example, when aplurality of entries, each having an attribute value of a firstattribute is associated with an attribute value of a second attribute,are stored in the recording medium, the CPU 800-12 may search for anentry matching the condition whose attribute value of the firstattribute is designated, from among the plurality of entries, and readsthe attribute value of the second attribute stored in the entry, therebyobtaining the attribute value of the second attribute associated withthe first attribute satisfying the predetermined condition.

The above-explained program or software modules may be stored in thecomputer readable media on or near the computer 800. In addition, arecording medium such as a hard disk or a RAM provided in a serversystem connected to a dedicated communication network or the Internetcan be used as the computer readable media, thereby providing theprogram to the computer 800 via the network.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

While steps of the disclosed method and components of the disclosedsystems and environments have been sequentially or serially identifiedusing numbers and letters, such numbering or lettering is not anindication that such steps must be performed in the order recited, andis merely provided to facilitate clear referencing of the method'ssteps. Furthermore, steps of the method may be performed in parallel toperform their described functionality.

While the embodiments of the present invention have been described, thetechnical scope of the invention is not limited to the above describedembodiments. It is apparent to persons skilled in the art that variousalterations and improvements can be added to the above-describedembodiments. It is also apparent from the scope of the claims that theembodiments added with such alterations or improvements can be includedin the technical scope of the invention.

1. A computer-implemented method comprising: identifying, by an eventagent (EA) assigned to a region of a plurality of regions of ageographic space, an event occurring in the geographic space in which aplurality of mobile objects move, wherein identifying the eventcomprises determining a temporary event, wherein the temporary event isselected from the group consisting of: an accident, obstruction,closure, limitation, weather and construction; determining the event isan expected event based on predicting time-series changes of the eventhandled by the EA, wherein determining the event is the expected eventincludes determining a plurality of the events correspond respectivelyto a plurality of future timings, wherein determining the event is theexpected event includes assigning a plurality of predictive environmentagent (PEA)s corresponding to the plurality of future timings in everyone of a plurality of predetermined time intervals for each of theplurality of regions based on the movement of the expected event throughthe geographic space, wherein each PEA contains event information forthe expected event during a time interval and in the region for whichthe PEA is assigned; updating the plurality of PEAs in response toreaching an earliest time interval of the plurality of time intervalsfollowing a passage of time, wherein updating the plurality of PEAscomprises shifting the plurality of PEAs to be earlier in time seriesorder, and reassigning the plurality of PEAs of the earliest timeinterval to a plurality of future time intervals updated with a futureevent; and assisting, by a mobile object agent, movement of a mobileobject based on the expected event, wherein managing the mobile objectbased on the expected event includes receiving, by the mobile objectagent, information from PEAs that are associate with the time intervalthat the mobile object would travel through the region associated witheach PEA and moving the mobile object based on the information receivedfrom the PEAs.